\chapter*{Foreword and acknowledgments}


This is a draft text intended for a class on operating systems. It
explains the main concepts of operating systems by studying an example
kernel, named xv6.  xv6 is modeled on Dennis Ritchie's and
Ken Thompson's Unix Version 6 (v6)~\cite{unix}.  xv6 loosely follows the structure
and style of v6, but is implemented in ANSI C~\cite{kernighan} for 
a multi-core RISC-V~\cite{riscv}.

This text should be read along with the source code for xv6, an approach 
inspired by John Lions' Commentary on UNIX 6th Edition~\cite{lions}. See
\url{https://pdos.csail.mit.edu/6.S081} for pointers to on-line
resources for v6 and xv6, including several lab assignments
using xv6.

We have used this text in 6.828 and 6.S081, the operating systems
classes at MIT.  We thank the faculty, teaching assistants, and
students of those classes who have all directly or indirectly
contributed to xv6.  In particular, we would like to thank Adam Belay,
Austin Clements, and Nickolai Zeldovich.  Finally, we would like to
thank people who emailed us bugs in the text or suggestions for
improvements: Abutalib Aghayev, Sebastian Boehm, Anton Burtsev,
Raphael Carvalho, Tej Chajed, Rasit Eskicioglu, Color Fuzzy, Giuseppe,
Tao Guo, Naoki Hayama, Robert Hilderman, Wolfgang Keller, Austin Liew,
Pavan Maddamsetti, Jacek Masiulaniec, Michael McConville, m3hm00d,
miguelgvieira, Mark Morrissey, Harry Pan, Askar Safin, Salman Shah,
Adeodato Simó, Ruslan Savchenko, Pawel Szczurko, Warren Toomey,
tyfkda, tzerbib, Xi Wang, and Zou Chang Wei.

If you spot errors or have suggestions for improvement, please send email to
Frans Kaashoek and Robert Morris (kaashoek,rtm@csail.mit.edu).
